EEPROM=at2402, 2048 bit, 256 byte

==LUNA SN Data Structure EEPROM Content, Total 256 bytes==
'''We can read from /proc/itc_sn/*, /proc/itc_sn/info contains summary info for the sn'''

{| cellpadding="5" border="1" cellspacing="0" align="center"  style="text-align: center"
!align="center" style="background-color: #00ff00;"|Name 
!align="center" style="background-color: #00ff00;"|Offset
!align="center" style="background-color: #00ff00;"|Size (bytes)
!align="center" style="background-color: #00ff00;"|Contents
!align="center" style="background-color: #00ff00;"|proc path
|- 
| Header
|0
|4
|0xAA, 0x55, 0x33, 0xEE
| none
|-
|Borad Name
|4
|8
|ASCII=ITC_CORE
| /proc/itc_sn/info
|-
|Hardware Revision
|12
|4
|0x00, 0x00, 0x00, 0x02. Hardware Revision
| /proc/itc_sn/info
|-
|System VARs （not verified)
|16
|16
|system boot arguments
| none
|-
|终端类型 
|32
|8
|screen size, screen rotation, screen touch, pinmux ...
| /proc/itc_sn/screen_size, screen_rotation, cap_touch, pinmux
|-
|功能矩阵 
|40
|16
|excel 表
| /proc/itc_sn//funcs/*  注意：只有开启的才显示，两种方式：offset or name
|-
|Manufacture Date
|56
|2
|0xYY 0xWW, YEAR + Week, example 1328
| /proc/itc_sn/manufacture_date
|-
|Serial Number 序列号
|58
|14
|0x000000000000123
| /proc/itc_sn/sn
|-
|品牌
|72
|48
|utf8 品牌
| /proc/itc_sn/oem
|-
|终端型号
|120
|20
|ASCII
| /proc/itc_sn/model
|-
|终端名称
|140
|100
|utf8
| /proc/itc_sn/name
|-
|加密 encryption
|240
|16
|TEA binary
| /proc/itc_sn/verified  (not existed if not verified)
|}

==终端类型 8 bytes==
# screen size:     0x10-> no screen 0x11->4.3" 0x12->5" (= 7")
# screen rotation:     0x10->0, 0x11->90clockwise 0x12->180v_flip 0x13->270clockwise
# cap touch:        0x10->none, 0x11->enabled(4inch), 0x12->(4inch new touch with key), 0x13->(7inch new touch with key), res touch 0x20-> none, 0x21->enabled
# pinmux:      0x10->version 0 (PINMUX为B版）, 0x01 pinmux C， (有其他版本，根据功能不同进一步区分）, 0x11 aria pinmux 0
# development version:         0x01 -> development version. all others: release version
#
#
#
#

==Serial Number 序列号==
目前的序列号只是引用后8位数字，前面全部为0.但是，为了测试的目的，后八位开始为F的是测试使用的序列号。

==功能矩阵 16bytes==
注意：
* 此表只可继续添加新的功能，如果旧的不需要，则直接废弃。
* 标配：这里只的是所有终端都应该打勾的功能。

# GPIO键盘 (标配）:gpio_keypad
# GPIO定制键盘:gpio_custom_keypad
# 红外键盘:infrared_keypad
# 485点阵屏协议:485_dot_matrix_protocol
# 485酒店协议:485_hotel_protocol
# 485银行协议:485_bank_protocol
# 银行面板监听:bank_spy
# USB蓝牙:usb_bluetooth
# USBwifi:usb_wifi
# USB3G网卡:usb_3g_network
# USB存储：标配usb_storage
# USB鼠标键盘，禁用:usb_mouse_keypad
# 移除检测:removable_detection
# 手柄检测:hand_check
# 短路A组（标配）:short_cic_a_event
# 短路B组（标配）:short_cic_b_event
# 电源控制IO（标配）:power_control_io
# 优先控制:IOpriority_io
# 状态灯IO （标配）:led_io
# SPI扩展16区:spi_16
# SPI扩展采集:spi_capture
# SPI扩展电容键盘:spi_cap_keypad
# SPI时钟显示（目前先不做）:spi_clock
# 智能功放检测:int_amp_detection
# 模拟功率切换功能:analog_power_control
# aux音量模拟控制功能:aux_analog_volume_control
# MIC音量模拟控制功能:mic_analog_volume_control
# 声压触发:sound_pressure_event
# 优先级检测（声压）:priority_check
# Airplay:airplay
# 多方通话:conference
# 交换机网卡:net_switch_mode
# 冗余双网卡:net_team_mode
# PPPOE:pppoe
# 7202接收广播模式:7202_broadcast_listener_mode
# 7202发起广播模式:7202_broadcast_speaker_mode
# 7203发起广播模式:7203_boradcast_speaker_mode
# 普通对讲模式:normal_unicast_mode
# 监听模式:spy_mode
# 耳麦对讲模式(7202):7202_unicast_mode
# 窗口对讲IO:window_talk_io
# 高铁面板:high_railway_keypad
# 网络故障输出：net_error_io
# 禁用点播广播:disable_dibbling_broadcast
# 禁用拨打界面:disable_dialing_interface

===解释===
注意：参照“新IP硬件需求对照表(2013.07.17)”查看具体的定义。
# '''GPIO键盘'''
#: 开启reset key和音量调节key,和alarm1/2的功能。注意(alm1/2)会被定制键盘替换掉。
# GPIO定制键盘
#: 专指aux vol+/- 替换alm1/2，
# 红外键盘
#: 启动红外线键盘监听程序进行translate红外键盘
# 4.3 LCD （ 不在这里处理，在上面处理）
#: 硬件的4.3寸LCD屏幕。硬件需要支持，logo,终端gui等。
# 电容触摸屏 （不再这里处理，在前面处理）
#: 是否有触摸屏。主要是kernel解决。
# 485点阵屏协议
#: 小的信息屏（宋工方案）
# 485酒店协议
#: 酒店的自面板相关功能
#: 有子终端面板
# 485银行协议
#: 银行子终端
#: 有子终端面板
# 银行面板监听
#: 银行面板监听指的是子终端功能。
#: 和普通监听指的是终端。
# USB蓝牙
# USBwifi
# USB3G网卡
# USB存储：标配
# USB鼠标键盘，禁用
# 移除检测
#: 可以对移除检测进行配置，
# 手柄检测
#: 是否启用手柄模式相关功能
# 短路A组
#: short-in1和short-out1，
# 短路B组
#: short-in2和short-out2 
# 电源控制IO（标配）
#: 是否开启电源控制IO的功能 
# 优先控制IO（标配）
#: 是否开启优先控制的功能
# 状态灯IO （标配）
#: 是否开启红绿状态灯的功能
# SPI扩展16区
#: 子区，也就是子终端，只有被呼叫和被播放背景音乐。任意自动断开关，共用一个音频通道。
# SPI扩展采集
#: 消防报警那个东西。类似于GPIO触发。
# SPI扩展电容键盘
#: 指的是spi的扩展键盘监听程序启动
# SPI时钟显示（目前先不做）
# 智能功放检测
## 定压的电压（负载）
##: 定压电压触发事件开启
## 定压的电流（负载）
##: 定压电流触发事件开启
## 交流的电压
##: 交流的电压触发事件开启
## 交流的电流
##: 交流的电流触发事件开启
## 直流的电压（24V 备电）
##: 直流的电压触发事件开启
## 回路检测
##: 1分钟内，gpio如果不跳（变0变1），我们就认为这个事件触发了。
# 模拟功率切换功能
#: 根据功率电压，对aux声音大小进行调节，百分比或者db,后定。
# aux音量模拟控制功能
#: 通过模拟来直接调节aux的音量
# MIC音量模拟控制功能
#: 通过模拟的方式直接调节MIC的音量
# 声压触发
#: 声压触发开启：指的是监听mic的检测，然后，激发事件进行处理。
# 优先级检测（声压）
#: 3通道的声压检测之后管理优先级的关系。
# Airplay
# 多方通话
#: 是否同意进行多方对讲电话，即是会议模式。
# 交换机网卡
#: 交换机工作模式
# 冗余双网卡
# PPPOE
#: PPPOE相关功能
# 音乐播放模式（去掉，所有终端都有）
#: 所有的音乐播放都属于这个模式
# 485接收广播模式（去掉）根据485协议判断是否开启。
#: 开启485接受广播模式
# 485发起广播模式 （去掉），根据485协议判断。
#: 开启485广播模式
# 7202接收广播模式
# 7202发起广播模式
# 7203发起广播模式
# 蓝牙发起广播模式（去掉），根据usb蓝牙进行判断。
# 普通接收广播模式（去掉）
#: 注意，无普通发起广播模式，肯定包括在上面。
# 普通对讲模式
# 窗口对讲模式
#: 是否开启窗口对讲模式，根据GPIO检测脚来判断。
# 银行对讲模式（去掉，根据 银行协议判断。
# 酒店对讲模式 （去掉，根据酒店协议判断）
# 耳麦对讲模式 （去掉，根据检测脚判断）
# 蓝牙对讲模式 （去掉，根据usb蓝牙进行判断。
# 监听模式
#: 能不能被监听。
# 银行监听通道（485银行协议决定，有就是有，没有就没有）
# 手柄模式的拨号音功能（去掉，根据手柄检测来配置）
#: 是否开启手柄摩斯的拨号音功能
# 耳麦对讲模式(7202)
# 窗口对讲IO：定义了是否有窗口对讲IO脚。
# 高铁面板： 开启后进入高铁专用面板模式(包括界面以及6按键支持)
# 网络故障输出：在网络音频出现故障的情况下，我们会启用gpio输出来切换到非网络输出的，达到冗余的目的
# 禁用点播广播:禁用点播界面中的广播到其它终端的功能
# 禁用拨打界面:禁用拨打界面 (部分机型不需要拨打界面)

模式判断的相关逻辑如下：
<pre>
耳机/mic检测是在register 13里面（3106）。

对讲发起的时候：
其他的时候都需要判断：我们才判断蓝牙和耳机及酒店。
485银行的时候，不用判断蓝牙或者耳机。
只有在耳麦模式下才判断是不是7202

接受的时候。
接受方有没有银行自面板号，有就是银行模式，没有就是：普通模式，
普通模式需要判断酒店，蓝牙，耳机。
只有耳麦的模式下才判断是不是7202.
判断有限顺序：
蓝牙：0
耳机：1
酒店：2.
普通：3.
窗口：4.（扩音）别的谁过来就把它干掉。
广播模式和对讲模式判断一样。


广播模式少了一个普通发起广播模式是正常的，因为普通情况下不能发起广播。
</pre>

==Encryption Algorithm==
USE TEA http://en.wikipedia.org/wiki/Tiny_Encryption_Algorithm